accept any container for hash