auto newlines, better empty string handling, better function names
bump