Refactored.
Updated documentation.
Updated libs.