moved most of the meaty logic into an executable script
omit undocumented methods