! HasId is now a typeclass