implemented func_decl