added early structure and relevant header files