Comments and documentation
Interface implemented
Types added to Run()
TODOs added