restrict the argument for better compilation error