complete struct