refactor(*): dividing into subpackages