Basic implementation of builder pattern