added opacity transition