refactor budget with slick