ticket:1 add test, view, model