add basic initialization and data input