Several optimizations
Several updates