fleshed out model and templates