big update

Too many changes to list. Consider this init.