user script re-works