user spec is passing. lots of small improvements