updated with lots of things