this should also be solved by mixin `id` into `traits`