1. cleanup
1. add basic client implementation