...this doesn't actually compile, yet. BUT I'm working on it.