add support for many success and error handlers
added related tests
added fake_ftp, fake_sftp
added handler handling to source.call instead of source
worked on ftp test