replaced is_subclass_of with ReflectionClass::implementsInterface