Clean up and refactor
Add discussion