add and support complex model structure