some clean
some clean
replace raw query to ORM
add requirements