Looks reasonable, except it should probably be a builder.