* optimizations
* update