refact: add eaquals(Object o) & hashCode() method to Element