abstracted common behavior to a generic scale object