describe the requirements and solution