removed requires and renamed base class to not collide with PHP 5.4 naming conventions