What did you do to bridge the gap between small portions of code and real software?