There is code duplication in both the interface and implementation that should be cleaned up and consolidated.