self ping implemented