Make use of defdelegate and pattern matching in more methods