a little more refactoring, updated the readme, added a couple new options along the way