Various fixes/enhancements

Broken into three commits now (as suggested), and the tests pass.
I see, thank you. Isn't the `reduce` line equivalent to simply calling `np.concatenate`?

```python
In [7]: obs = np.concatenate(np.array([[[1], [2]], [[3], [4], [5]], [[6]]]))

In [8]: obs
Out[8]:
array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])

In [9]: obs.dtype
Out[9]: dtype('int64')
```