moved more functions