Add better error handling and reporting.
Use BetterFTP to allow for directory creation.