flesh out a bit more the structure