there is too much shared logic to rewrite the separate model and controller....