refactored primitive types, ditch Rectangle, added project matrix to rendering