More symmetry and generalization.
Really great simplification basing on new data structure which holds all pieces
Clean-up
Removed unused method! Real simplification!