Add basic client framework