refactor abstract model
configure tests