redone with libco and puae core