Decouple some player functions to make them more extension-friendly
Create custom view for settings elements