added interfaces to logic