added code from old projectionInterface