updated with working MM