#12: added equals template implementation