implemented iController