using document fragments for better performance
added tests
fresh builds