added molecular weight calculation