Split gun runtime data into gun class
Partial gun refactor