voilaa :) finished coding, included tests.

New tweaks are coming only if needed for online deployment and code
cleaning