adding method 1
adding method 2
re-arranging functions