buggy but basic player working