TODO ---- Code cleanup and separation of different classes into individual files. Use pixmaps instead of images for reducing the drawing impact.