complete todo example