several things had wrong return type!