move player placement logic to separate module