tostring, abstraction