added tons of changes