add framework for N unit types