extract individual functions