begin implementation section