refine entity bits, add id factory
convert to impls