Some refactoring + userOut methods
create abstractchat class and methods