Merge branch 'matthew'

ý5:q
Merge branch 'matthew'

ý5qq:q
Merge branch 'matthew'

ý5:q
Merge branch 'matthew'

ý5:q
Merge branch 'matthew'

ý5:q
added several more tests