basic interface
merge functions