formatting and some documentation