Did some style changes and added full-documentation.