scan service implementation