use unboxed return type
fix demo: use unboxed return type