rewrote camera and added camera features