refactored VoidType and NullType