Motivation added, existing solutions refactor, add some bib.
Existing and own refactoring + macros.