try catch stuff for todo