added a lot to abc.c