model implementation choices finished