constructor methods. how do they work?
better help message
can now test on arbitrary opt-producing function.