final version with further potential changes