restructured abstract battlebug classes and interfaces
updated rest to match