push towards something more generic