Functions Restucture