almost done with implementation section