return error as null when valid
make all intance method callback has a context of `this` as instance itself