initializing
all mess up but at least is public