Refactor current methods to accept more predictable parameters. Add new API methods. Maybe break backward compatibility.