#13 - added hashcode template implementation