refacto player + begining interface using