I didn't know that you could use types as a key, that cleans a ton of things up actually