reorganize methods