only 1 message at a time; add opacity transition