protocol properly definied
passing data by using protocol definition