broke out projection into its own class
Revert "broke out projection into its own class"

This reverts commit 735fa739b3f5b51cb14831e0fe8c60e0936fa335.
uniform matrix abstraction