Battle tested, changes include better flow and some examples