closes #6, reorganization of files; separated client code from helper code