Added upload functionality, services, unit tests