move dot out of core to external code generation