add constructor with explicit parameters