lots of work done to implement the 'set' command, as discussed in issue #22. not fully tested yet though all tests are currently passing (need to write some more tests).