Add library app (fix #7 #10)

Ref: #7 #10

This only adds the basic logic of the app. More to come in other PRs :)
unique doesn't play well with null since you'll only have one null value.