don't update percieved color unless it changes; fix bug with beam staying on