support file uploads on backend; closes #15