added requirements and logging