change functions beacause the demands has changed