add puzzle and data structure code