Builder design pattern implemented