add weapon class and test