Loose creditCard type check and some refactoring

I did some refactoring and also translated test messages to English.

with this I was able to add a new feature to make a check for creditCard before it's completed, regarding retro-compatibility and keeping the external API.

The code is broken in many commits to allow you to revise this PR on each step.