plusieurs optimisations et bugs corriges