support options when extending object