updated for demonstrating orthogonal projection