split model into puzzle, geometry
remove useless methods
add DisplacementBuilder
rename: Transform->Movement; Displacement->Transformation
clear code
rename: Builder->Engine
rename: divideIntoTransformation->divideMovement
add definition in geometry
rename: Face -> Surface
remove clone in geometry ( those are immutable )
generic Engine
rename: Engine -> BasicEngine in geometry
implement in func
add Function, Set in math
implement expression in func
add Engine in func
implement Engine in func