Design

Possible enhancements

Functional enhancements: Code and design enhancements: