model of how we will implement custom functions