completed .. almost no structs