simple manual play loop