refactor book.xcore