Replace duplicated code with macro, fix wrong returns