projection algorithm implemented, NOT tested