yeah creating `T` via new isn't really possible without using a `Factory` or reflection.  But still, seems like it should be static and should be called `readElement`.