refactor of drag to support both svg and non-svg schemas