dev lib
new parameter + callback