switched from Dictionary to IDictionary in the public interface