should inherit ``object``