added options for key and value arguments