What for it's needed? Why can't we use self?