there are always more TODOs...
WIP - large changes to api of fit and model. better handling of model parameter initialization