cleaned up for final submission