Moved shared implementations into sub folder.