requires WCF - lol