cleaned up if