Oh boy this is starting to get hacky