working on strict book object contraints