Complex type class