Merge request.

As always, please check TODOs. As discussed, I haven't touched much on styling, I merely tried to resolve existing issues.

Thank you for your patience.