Refactor with submodules :thumbsup: