Moved shared files

..and split the header in to two rather than use conditional logic