static factory method and some changes to itemmod