refactor packages and add dataFieldController class