add more artifacts and refactoring codebase structure