added first and second projection functions