Session 3: Code construction

Please don't merge yet, but please review.