add cons fn