remake into `tower/type`