implement real projection (improvement: no Changeling)