semifinal version, minor changes yet to be done