First version with most functionality. Pending validation and comments

Signed-off-by: Jesús María Escudero <jm.escudero.justel@outlook.com>