refactor & add client
make name logical
change stuff