move class from core to commons due to dependency issues