Messing around with factories and data contracts

Changing how I'm passing around data for attack calculation, and
splitting it up into multiple classes