Refactored to use M3