First version : seems to work fine for basic usage