constructor custom initialization list