Added new abstract class for shooting units... optimized inheritance slightly.