added licence notice and also tried inline assembly