Refactoring towards extracting classes
Continued refactoring.
Working via methods.
Extracted PositionGenerator to reduce complexity of Position class.
However it forced me to make some methods package-private (they were private initially).
Also technically  we have a cyclic dependency between Position and PositionGenerator classes.
But since they reside in the same package it shouldn't be harmful.