roles mngmt (closes #97) and cleaning code

closes #97
user with administrator role can manage every user including himself
and some code cleaning