mut as type function
reorganize expressions