Last commit for today. I refactor it later (sorry Uncle Bob). TODO - many issues!