improves the object implementation