added **kwargs for better compatibility