1) purify client
2) add grade dependency