change stack by struct