we really need it? it's so much extra code that it need to be a function?