move "smart" methods to context model