using callback
add the core layer