I really dislike the Set interface and how it requires writing this :(