Implemented a lot of stuff even image upload