add a system
TODO: fix the viewport projection bug