added interfaces and pojo impls