Convert tabs to spaces.
Further abstraction; add logging; make remote controllable;