allowing overwriting of functions