removed some code around casting

- Lower bounded type parameters not allowed in Java. yikes thats
annoying.
- There's no point in the user specifying the type early because thanks
to erasure theres nothing we can do about it unless we track every call
to add and remove, in addition to doing something with select. Annoying.