converted leading tabs to spaces and cleaned trailing whitespace
made readPrivate() virtual function in parent class and simplified read()
additional tweaks to read()

simplified conditionals, added call to emittersOff() to make sure emitters
are actually off when they're supposed to be
edited read() comments to reflect changes
updated license and readme