begin adding functions