Refactored into separate folders to keep things clean ande easier to understand.

Added more intermediate steps.