migrate generic code from Common