made Surface size configurable
faster surface combinations generation
extracted Surface to separate file
reordered tests
test with surfaces from original task