add methods to build the whole model