avoid mixing code and declarations