simplify initialization and make receiver singleton