final submission - with some fixes