added a common main