make a few things more generic