refactored, work with new controllers