Refactored Component so usage is to extend it (with a paint method) rather than instantiate it (with a paint method)