basic todo functionality complete