Need to check bound errors... Other then that it works well