added self to abc functions