Base fucntionality implemented and tested.