move all shared components into separate module