Text this: Using software abstraction to develop an agent based system /