constants
linker function
template in variable
template in variable
template in variable
re-factor