final boilerplate is now added to functions