Better constructor