chpt4 add public and private interfaces, implement hash initialization params