I didn't look into tests, but code looks good.
:thumbsup:
rebased onto 59005a6a7aa8ebfd071fe5dbdba1447cdb59d2f4
Pull-Request has been merged by pingou