Added composite pattern and curl and dom