step 2. getting smarter
step 3. adding guard
step 4. scraping abstract
step 5. more scraping
step 6. refactoring with OOP
step 7. accessing attributes
move CLI parser down
step 8. sophisticated cli
step 9. fixing bad practice
step 10. optimizing keys
step 11. adding filters for links
step 12. code blocks
step 13. namespaces
step 13. namespaces (include filters output)
step 14. decoupling
resolved conflicts