turned RegisterReceiverFunctions into variadic function; cleaned up