more cleanup, added ProfilePosition struct