Restructured a bit, added service contracts