draft checker implementation

need clear code and style and write unit tests