Adding in the rest of the functionality