as above we really want these much more generic