add new book implementation (not finished yet)