image model: editing, uploading and api functions