Restart commit - made a hash of the first implementation, need to plan better.