attempt to simplify and make more express-y