comments and usage cases added