use Type as much as possible