starting to refactor into different packages in different dir