Merged with Ryan's stuff. Soon this main will be testable. Please implement the interface mentioned in this file as well.