hash + functions