added routine model and its listener