Refactoring to support expected default behavior etc.