reorganize interfaces