delealing with interface