decl stuff