Add basic functionality. NEEDS TESTING