                 expect(result.string) == example
             }
         
-            it("function composition") {
+            it("attributed string creation with operators created intended text") {
                 let example = "test string"
                 let red = thongs_color(UIColor.redColor())
                 let large = thongs_font(largeFont)

func containsAttribute(key: String, value: String) -> MatcherFunc<NSAttributedStringAttribute> {
    return MatcherFunc { actualExpression, failureMessage in
        failureMessage.postfixMessage = "contain attribute <[\(key) : \(value)]>"
        // expect(attrs["NSColor"]!.description) == "UIDeviceRGBColorSpace 1 0 0 1"
        let attributeDescription = actualExpression.evaluate()![key]!.description
        return attributeDescription.rangeOfString(value) != nil
    }
}


    override func spec() {
        describe("Thongs") {

            it("attributed string length and content is the string") {
                let example = "foo"
                expect(thongs_string(example).length) == count(example)
                expect(thongs_string(example).string) == example
            }
            
            it("large font string length and content matches string length") {
                let example = "test string"
                let sample = thongs_font(largeFont)(thongs_string(example))
                
                expect(sample.length) == count(example)
                expect(sample.string) == example

                let attributesOfFirstWord = sample.attributesAt(0, count(example))
                expect(attributesOfFirstWord.count) == 1
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-family: \".HelveticaNeueInterface-MediumP4\""))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-weight: bold"))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-style: normal"))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-size: 23.00pt"))
            }
            
            it("create string formatter and apply it to string") {
                let formatter = thongs_color(UIColor.redColor()) <*> thongs_font(largeFont)
                let result = formatter(thongs_string("jee"))
                
                expect(result.length) == count("jee")
                expect(result.string) == "jee"

                let attributesOfFirstWord = result.attributesAt(0, result.length)
                expect(attributesOfFirstWord.count) == 2
                expect(attributesOfFirstWord).to(containsAttribute("NSColor", "UIDeviceRGBColorSpace 1 0 0 1"))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-family: \".HelveticaNeueInterface-MediumP4\""))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-weight: bold"))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-style: normal"))
                expect(attributesOfFirstWord).to(containsAttribute("NSFont", "font-size: 23.00pt"))
            }

            it("operator piping produced same string as function composition") {
