another try for KMF multi inheritance type system