fixed: todo text cannot be empty