restructure gem and add specs for configuration