split off interactive behavior