Added implicit conversions
refactored Element.getHashcode()