refactror methods, extended matching, specs