Pretty close to correct project function