added testing framework