successfully tested with Multisim