checkpoint draft (just updating code)