Refactor parameter handling, use JSON