we only do one initialization in the beginning of the program