idea/impl types