added snapBehavior