now with slightly more variable support