records everything nicely