added a main driver method.