merge multiple boilerplates to suit my taste