reorganize implementation objects