Shouldn't we rather rely on ducktyping and accept any type that has the required attributes?