various refactoring (BoundingBox, ...) and documentation