build + refactoring