Add base type and virtual function notion