added some documentation and styles