adding more projection methods (from jiyan  yang)