handling for different hat types