improved docs struct