moved experimental code into separate header and library files
Split experimental code into headers and library files