committing the complete code