Refactor to accept hash objects and use strings vs symbols everywhere