refactoring todo CRUD to a separate service, + unit tests