Improved support and (maybe) a slight optimisation