use interface instead of concrete class
client for go