recursive type extension 3 classes works fine