After discussing with Jorund:

- added return types in chainable methods
- exposed className methods to Element because className is present in constructor