simplified a lot