adding header documentation and cleanup