https://surfcity.co/2017/02/02/pm-complex-positions/