added delegate in purpose to have ability to customise page indicator view. some refactoring