abstract dispatcher, implementation into core, created dispatcher for backward compatibility