method: design for one, extend to many