restruct
use c?