add requirement and design