add support for roles
add models for diaries
add tests