This article is to describe the Essex Wizards team attending the simulation league of RoboCup99 in Stockholm. A long-term research goal of this team is to focus on cooperative behaviours; team roles and formations; sensor fusion and machine learning capabilities. Therefore; the initial efforts for participating at RoboCup99 are mainly concentrated on a multi-threaded implementation to simulated soccer agents for the RoboCup competition in order to meet the timing requirements set by the RoboCup soccer server simulator. Since robot agents work at three distinct phases: sensing; thinking and acting; POSIX threads are adopted to break down these phases and implement them concurrently. Implementation results have shown that it outperforms traditional single-threaded approaches in terms of efficiency; responsiveness and scalability. To handle a complex; dynamic; adversarial environment like the one of a football game; this article also describes how machine learning techniques and agent technology have been used in the current implementation; to tackle the decision-making and co-operation problems. By gathering useful experience from earlier stages; an agent can significantly improve its performance and by distributing the responsibilities among the agents; an efficient way of co-operation emerges.