implement swappable ui handlers, initial work