move structs and functions definitions to new header file