First commit

3 functions not yet implemented.