update models: extend abtracts
update controller + test