design & implement layer hierarchy