Added all extra tests

Marked all pending questions with:

* # BUG:
* # DISCUSS:
* # TODO:

Feel free to respond via comments on the given lines.

Also, if you want to commit the bulk of it now and handle any pending cases later, for ease of testing, feel free.