began refactoring step by step, 1:neatly_divisible