initial empty solution
added interfaces