update requirements and explanations