better spec naming
proper name internal method
implement query