refactored to be multimodule
refactored to have no EL based labe (due to performance
merged
fixed unit tests, mockito:spy does not like prototype scope