Starting PM 2.0 refactor