added AOS
use malloc