* refactor * cleanups * some caching of objects to improve performances