I swear I used to know how exceptions worked, deal with it later