new structure (skipped 2 inlines) same code!