add __extends function