Complete refactoring of source tree
Restructured the entire library and added demos