Revert "Revert "fully repaired + new features""

This reverts commit 0caad1f41a68248ba5cc7ad889e889f46f5eddd2.