this function should not be static....