Cleaned up code for the client also allow specification of opponent
reduced code