begin refactor to todocontroller