Hides hash implementation by using the PIMPL-idiom