added some interfaces for providers