almost implements all of book managment feature