Output: Rewrited practically everything, hope it's the last time.
Input: Minor changes, but will be rewritten.