re-worked

totally reworked, not clean version