Initial code, still more stuff to add but this brings the default functionality using an abstract PHP class and Reflection (some cool stuff!)