updated with more stuff