.for rewritten, now works on any types with integer .Count property or integers (like .times), cleanup and decompose