using interface for message