bug fix & adjustable snap range