some documentation and code review..