tried to make this suck a bit less