I charge on project basis for most of my work, but always try to estimate projects up front. I never negotiate on rate, but on scope. Only start work when 50% advance is paid. And take rest 50% after successful completion. Most communications over email. Been happy with that approach for 5 years.