Starting to implement the functions and classes