starting on projection; not quite there
added screen mapping method