Separated everything into responsible services and controllers