Basic Setup. Still not complete nor tested.