Add more base functionality. Probably broken.