builder pattern improvement, exceptions are added