refactor reward package classes architecture: simplify it and reduce complexity;
fix random gifts reward logic.
add builders to reward objects.
add reward builder invocation with action constructs