Add library app (fix #7 #10)

Ref: #7 #10

This only adds the basic logic of the app. More to come in other PRs :)
there's two `_` in this test name after `should`