Updated to namespaces and PSR-0 compliance