updated according to xtreme comments