refac and add puzzlers