Shorter implementation for series-based version