Adding in a core class, and moving old class to tinker.

Sorry if I changed too many things. I'm happy to discuss changes and I can always change things back if we decide we don't like them.

Also I didn't add any tests, mostly because I wanted to get this up sooner rather than later, and I haven't used VCR before. I'll look into it later and add some, or you can if you want.

*note: The diff on this PR is a bit of a mess, I'm sorry about that.