Full build, needs refactoring