rename interfaces and core definitions
add 'with' method to core definitions
definition returns closure
set actual via setter
add Leo as entry point