Move to PSR-0 namespaces.
Added interfaces for extendability.