@wryl thanks for your help with forcing evaluation order. i still plan to add more types which may improve performance even more.