Last commit for now. will finish later