books functionality