learn using interface