First commit for basic functions and working gem