 	let stringValue: String
 	let optionalFilename: String
 	let requiredName: String
+	let enabled: Bool
 
-	static func create(a: Int)(b: String)(c: String)(d: String) -> TestOptions {
-		return self(intValue: a, stringValue: b, optionalFilename: d, requiredName: c)
+	static func create(a: Int)(b: String)(c: String)(d: String)(e: Bool) -> TestOptions {
+		return self(intValue: a, stringValue: b, optionalFilename: d, requiredName: c, enabled: e)
 	}
 
 	static func evaluate(m: CommandMode) -> Result<TestOptions> {

			<*> m <| Option(key: "stringValue", defaultValue: "foobar", usage: "Some string value")
			<*> m <| Option(usage: "A name you're required to specify")
			<*> m <| Option(defaultValue: "filename", usage: "A filename that you can optionally specify")
	}
}



			it("should succeed without optional arguments") {
				let value = tryArguments("required").value()
				let expected = TestOptions(intValue: 42, stringValue: "foobar", optionalFilename: "filename", requiredName: "required", enabled: false)
				expect(value).to(equal(expected))
			}

			it("should succeed with some optional arguments") {
				let value = tryArguments("required", "--intValue", "3", "fuzzbuzz").value()
				let expected = TestOptions(intValue: 3, stringValue: "foobar", optionalFilename: "fuzzbuzz", requiredName: "required", enabled: false)
				expect(value).to(equal(expected))
			}

			it("should override previous optional arguments") {
				let value = tryArguments("required", "--intValue", "3", "--stringValue", "fuzzbuzz", "--intValue", "5", "--stringValue", "bazbuzz").value()
				let expected = TestOptions(intValue: 5, stringValue: "bazbuz", optionalFilename: "filename", requiredName: "required", enabled: false)
				expect(value).to(equal(expected))
			}

			it("should enable a boolean flag") {
				let value = tryArguments("required", "--enabled", "--intValue", "3", "fuzzbuzz").value()
				let expected = TestOptions(intValue: 3, stringValue: "foobar", optionalFilename: "fuzzbuzz", requiredName: "required", enabled: true)
				expect(value).to(equal(expected))
			}

			it("should re-disable a boolean flag") {
				let value = tryArguments("required", "--enabled", "--no-enabled", "--intValue", "3", "fuzzbuzz").value()
				let expected = TestOptions(intValue: 3, stringValue: "foobar", optionalFilename: "fuzzbuzz", requiredName: "required", enabled: false)
				expect(value).to(equal(expected))
			}

			it("should treat -- as the end of valued options") {
				let value = tryArguments("--", "--intValue").value()
				let expected = TestOptions(intValue: 42, stringValue: "foobar", optionalFilename: "filename", requiredName: "--intValue", enabled: false)
				expect(value).to(equal(expected))
			}
		}
