It builds
some refactoring