removed dependency on inherits