refactor initialize from multiple arguments to a hash