fixed definition of interfaces and compile tested on windows