make improvements, move crap out of header and into implementation so the symbols go into the single object