Clean

Use nested module/class definitions instead of compact style.<br>Missing top-level module documentation comment.<br>Use snake_case for source file names.