Updated with lessons from latest projects