icake implementation