core class + merger