Make a bunch of stuff generic