add config option for snapping and soft constraint