add basic todo functionality