basic on/off functionality introduced + refactor