Refactor validate, argument parsing, spacing