factored #compose method out of Book