moved reusable stuff to common