Refactored some classes, implemented frustrum culling and ray picking