re-organize plugins layer