added requirements and setup