Refactor core data, refine drag behavior