Updated Gemfile and development gems
refactored the way algorithms are required
Added shared examples for algorithms specs