Add player interface closes #3 closes #9