setting things up to be more flexible