Refactoring, adding hooks for animation

Point3DCollection can fire changed event to make dynamic, still needs a
lot of work though.
Better interaction