Improved delegate pattern handling
Separated interfaces from implementation
Created a Base for delegation handling

Signed-off-by: Nathan T Freeman <nathan.freeman@redpilldevelopment.com>