initial version : it works, one bug to iron out, but it works :D