Add functional style APIs