don't typehint $params, to allow for ArrayAccess objects
make interface match typehints