don't use alloca