recording controller need refactor