(more gui and OO design practice)