refactor the play module; clean up experimental code elsewhere; simplify login / name code - sorry for such a big commit