adding functions