take care of type tracking sanely