declaration-based