minor modifications and usage added