added framework for p3