extension system for three.js