a TON smaller. Pulled out key listener stuff into another class