added requirements and new usage