switch to lift json
decouple client from runner