some experiments
Re-structure