Many Fixes & many small changes