Towards intelligent interfaces