Changed some details in the implementation