handle function elements differently