v3 created with better OO principles and fundamentally based on state object for better computer strategy implementation