Initial commit of model and interface ideas