going full eloquent, refactor later