Added the common interface and its implementation.