Abstracting GUI components