extract code to modules

* add player-compact