moved and renamed some interfaces and classes