reorganize checks to be in usecases