Extended to donor, acceptor and combined. Debugged.