key param is optional