refactor repo structure