Improve PM implementation