started with implementing of type check