working es6 copy
new modularisation