update to work with M3