i'm no longer repeating so much code! really should stop being lazy and starting things like this