grumble grumble, let's be both a library AND a program