added HashFactoryBase and changes to MenuItemBase and MenuItem