add declaration attributes
add `newline'
update TODO
change func_id