chore(PEP8): format accoroding to PEP8 guidelines

- function comments are now docstring too.
- use `spaces` instead of `tabs` for indentation.
- two line space between top-level functions and classes.