Initial Book implementation w/ tests