added controller interface