boilerplate code vs template