implement toSerializableObject() + fix has() and clone() + more tests