big update with lot of changes