add traits and sub-controller