added md5 hash and a generic logger