reference implementation for the smart object API