additional variant to allocate memory