added functionality for dynamic key value pairs