some details fix and tested