encapsulates creation point logic for attributes in one object