type routine