Final player almost ready
Only optimizations need to be added