use a builder instead, much nicer