with HashMap