anchor.diff:  is_valid_spec(Spec) -> 
   	TrimmedSpec = re:replace(Spec, " ", "", [global, {return, list}]),
   	CleanSpec = re:replace(TrimmedSpec, "[^A-Za-z]", "", [global, {return,list}]),
  -	(CleanSpec =:= TrimmedSpec) and (length(CleanSpec) == 1).
  +	[(CleanSpec =:= TrimmedSpec) and (length(CleanSpec) == 1)|list_to_atom(CleanSpec)].
   
   diamond([Spec|_]) -> 
   	diamond(Spec);
  
positive.code: ].
  
  row_instructions_test_() -> [
  	?_assertEqual("A", row_instructions_for("A")),
  	?_assertEqual("ABA", row_instructions_for("B")),
  	?_assertEqual("ABCBA", row_instructions_for("C"))
  ].
  
  valid_spec_test_() -> [
  	?_assert(is_valid_spec("A")),
  	?_assert(is_valid_spec('A')),
  	?_assert(is_valid_spec("c")),
  	?_assert(is_valid_spec("  E   ")),
  	?_assertNot(is_valid_spec("AA")),
  	?_assertNot(is_valid_spec(" ")),
  	?_assertNot(is_valid_spec("4")),
  	?_assertNot(is_valid_spec("{")),
  	?_assertNot(is_valid_spec(""))
  ].
  
  positive_smoke_test_() -> [
  
negative.code: diamond(Spec) when is_atom(Spec) -> 
  	diamond(atom_to_list(Spec));
  diamond(Spec) ->
  	[IsValidSpec|ValidSpec] = is_valid_spec(Spec),
      if
      	IsValidSpec ->
  			Instructions = row_instructions_for(ValidSpec),
  			lists:map(fun(Instruction) -> io:format(user, "\n~p", [row_for(Instruction)]) end, Instructions),
  			true;
  		true ->
  