- further decouple video player and view