worked on guntype enum