Allow writing to a stream without creating an ast first
move some stuff around and make more specs pass again. 4 failing specs left