removed documentation as wiki will serve that purpose
implementation start