some boilerplates.