abandoning.
new design, several components (used derive)