oop Book model