almost almost corrected version