pretty much everything you need