Add User interface and its implementation