better compile statement rules