better input handling, method demo added, clean returns