don't typehint $params, to allow for ArrayAccess objects
finish first pass at README