Revamp, works now. need to look into 2D projection