new projection matrix
fixed a few bugs