work on complex type in kernel