added namespace
moved forward declarations inside namespace