Added a todoDomainRulesFactory and todoModel and moved controller functionality into the model