begin clean code