--
--more or less rewrote everything... --