Fix snake case warnings
Don't dependency inject via methods.

This will be imminently disallowed in Rust. While it could be re-implemented
using traits, it's not super clear that this was a great idea anyway: doing it
this way moves the creation functions to the types... that said, core.rs is a
bit sad looking now.