setup construction with parameters for performance reasons