refactored slick impl