better spec structure