Image provider methods were extracted to separate classes
Now they implement an abstract image provider -- image can be provided
for detection in any imaginable way!