various programming challenges