add comments
add common interface for clients