updated and cleaned, reduced and reorganised.
more cleanup