File reorganization - following some Linux ideas
Added some macros and documentation