make its own scope, better require of options