full diary functionality