data compiler refactor