added lots more stuff