refactor expense