adds the ability to pass an options hash or use block for config