reduce dom changes
added test