cleanup and additional functions

now allows for predefined PlayerDataObject to be initialized