model implemetation, in progress