abstract type Phone end

struct DeskPhone <: Phone
    book::Dict{String,String}
end

abstract type Camera end

struct kodak
    roll::Vector{Array{Int32,2}}
end

struct CellPhone <: Phone
    book::Dict{String,String}
    roll::Vector{AbstractVector}
end

function dialnumber(phone::CellPhone)
    println("beep beep")
end

function dialnumber(phone::Phone)
    println("tat tat tat tat")
end

function snap(camera, img)
    println("click")
    push!(roll, img)
end

dphone = DeskPhone(Dict(["information" => "411"]))
cphone = CellPhone(Dict(["emergency" => "911"]), [[]])

dialnumber(dphone)
dialnumber(cphone)
