refactor src structure