* moved more generic code into `common` package