Refactor

This request incorporates my other recent PRs as well as a major change to using the magic methods `__call` and `__callStatic` to do everything. I noticed that every function was doing the same thing so I figured they could all be easily replaced. So, if this request is cool (I think it's pretty cool), please ignore the others.