template
create basic functions