pub/sub without macro