f a b c d function
all but the last init