Elaborated a bit on the implementation