condensed constructor