added tons of features