* improve performances
* better error reporting