self not needed