use `inherits` for smaller bundle size