Did a bit of structwork

Also, it turns out traits are useful for reflection-esque things.