final submission version! YUPI