provide better defaults and validate user input. fixes #9