bugfix: must implement equals/hashCode for abstraction!