BIG PROBLEM WITH callback -> player

Most code has been rewritten to use interfaces