All logic changed in Service ... Gained almost 100 lines :p