Design

Code is being refactored.