better custom id support
redureduce entity memory footprint