Added three main interfaces and implementation sketch of concrete classes.