Updated to use generic object functions