make use of `$$<` instead of hacky stuff

made visibility better, moved things to Player object