tried to make it more clear by breaking things out