added a() and b()