best practices to remove code duplications to create clean code