Not the cleanest unfortunately