added snapping - inverse mapping required