Add Shell tests

Replaces #97 as this pull request incorporates those changes.