* not repeat yourself
* documentation