smooth instead of trying to guess function