add model transformation hooks, add model initialization