Finishing up API system's first draft

Still need to do a lot of testing and using it in a couple projects but
first go at it is done.