reworked ping()