added usage message generation
added some tests for usage generation