A number of different software architectures are emerging within the Grid world, which often leaves the application programmer confused about precisely which one will give the optimum solution for their particular problem. As a consequence, a number of application developers are waiting to see which technology becomes the most widely accepted, standardized and stable before they undertake the Grid enabling process. The GridLab project (www.gridlab.org) aims to this remove this confusion and underlying instability by creating an application-level API called the GAT (Grid Application Toolkit). The GAT provides a middleware independent view of the Grid that can be used by any application to transparently access to the functionality of a wide number of differing Grid services. GridLab is also developing a number of higher level services that sit on top of existing middleware to provide monitoring, adaptive components, resource brokering, scheduling, security and graphical interface portals for submitting, monitoring and viewing the application’s progress on the Grid. This talk will give an overview of the Gridlab architecture and its corresponding services, illustrating these using an example from one of the two GAT-driving applications, Triana. The flexibility of this architecture is demonstrated by showing how Triana can dynamically reconfigure itself depending on which middleware environment it is running within. Finally, the current status of the Gat implementation will be given along with future directions of the project.