book adding with validation