refactored int snap and added more shape types