Extracted responsibilities from book controller