rm M2 for now, to reimplement later more efficiently