Have done some dramatic changes, it's too boring to type too much text about that :)