Second approach, just need to verify if everithing is alright!