basic image uploading, some caching