all working, text in new class, requires refactor, smelly code