v0.2 better player implementation