this is quite a big structural change, first of all, using auto_loading method to load php classes on-demand. also renamed some of the files to more appropriate name. Fix all the namespace issue