Move default handling code to core

Addresses #611