fleshed out the model