major changes, notes inside the .js