primitive conversion implemented