divide up on functions