added a lot, forgot what I didn't add