Added composite() as discussed in #241.