This is more logic that could be added to the typesystem?  ispointer method?