added documentation. tons of docstrings updated and rewritten.
changed dir structure.