added a bit of structure