implemented generic TypedID