high-level box and unbox functions
changes